1. The Field of the Invention
The invention relates to devices, methods, and systems for diagnosing peripheral devices. Specifically, the invention relates to devices, methods, and systems for diagnosing a peripheral device connected to a terminated SCSI bus operating in one of a plurality of operating modes.
2. The Relevant Art
Computer peripheral devices are widely used. Generally, a basic computer system includes a processor and temporary storage such as Random Access Memory (RAM). Peripheral devices are all other devices that are added to enhance the capabilities of the computer system. The peripherals may be internal or external to the computer system. Examples of peripheral devices include hard disks, tape drives, CD-ROMS, CDRW, scanners, printers, and the like.
The computer system communicates with the peripherals by way of an adapter that connects to a system bus of the computer system. Generally, the adapter is contained on a printed circuit board that fits in a slot of a motherboard of the computer system. Alternatively, the adapter may be integrated in the motherboard of the computer system.
Generally, a plurality of peripherals communicate with the computer system over a common communications bus using a common communications protocol. Examples of communications buses include Integrated Drive Electronics (IDE), Enhanced Integrated Drive Electronics (EIDE), and the like. One popular communications bus and protocol is the Small Computer System Interface (SCSI).
While any peripheral device may be configured to use almost any communications protocol, the intended use for the peripheral generally influences the communications protocol used. For instance, certain peripherals are better suited to certain communications protocols than others. Generally, the protocol selected is directly related to the amount of data that will be transferred between the computer system and the peripheral. Basic I/O devices such as keyboards and mice may work well using the relatively slow Universal Serial Bus (USB) protocol. Other devices such as hard disks and tape drives may be configured to use the faster SCSI protocol.
Conventional SCSI protocols are capable of transferring data at rates of between about 40 Mbytes/sec to about 160 Mbytes/sec. These high data transfer speeds are desirable for moving large amounts of data, such as when performing a backup or restore operation on a disk drive.
FIG. 1 illustrates a conventional SCSI system 100. Generally, SCSI devices are external peripherals that are connected by SCSI cables to a host computer system 102. The SCSI protocol supports a comparatively long distance between peripherals. Cable lengths may currently be as long as eighty-two feet.
The SCSI protocol is a bus topology. This means that peripherals can be added or removed in a “daisy-chain” fashion. To add a new peripheral 104, a cable is simply connected between the host system 102, or another SCSI peripheral, and the new peripheral 104.
The collection of cables 106 connecting one SCSI device to another is referred to as a SCSI bus 108. As referred to hereinafter, the term “SCSI device” refers to any device that is connectable to a SCSI bus 108 and that is capable of communication with another SCSI device over the SCSI bus 108. The SCSI protocol requires that the SCSI bus be terminated. This means that at each end of the SCSI bus, a terminator 110 is connected. Termination of the SCSI bus ensures that electrical signals passed on the wires of the SCSI cables 106 are not reflected back down the wires. Reflection can cause signals passed on the wires to become indiscernible by connected SCSI devices.
Generally, a terminator 110 is a device adapted to connect to a SCSI cable or SCSI port of a SCSI device. The terminator 110 includes a series of resisters that absorb electrical signals passed on the wires of the SCSI cable. In certain implementations, the terminator 110 provides about seventy-five ohms of resistance. Alternatively, the terminator 110 may be implemented in software, integrated into a SCSI adapter in the host computer 102, or integrated into a peripheral 104. An internal terminator may be activated by software, firmware, jumpers, or the like.
To accommodate daisy-chain connections and terminators 110, SCSI devices generally include at least two communication ports (hereinafter ‘ports’ or ‘communication ports’) for connecting to SCSI cables 106 or terminators 110. Consequently, each SCSI device on the ends of the SCSI bus 108 has one port connected to a SCSI cable 106 and the other port connected to a terminator 110, unless the device provides an integrated terminator. SCSI devices in the middle of the SCSI bus 108 generally includes a SCSI cable 106 connected to each communications port.
The SCSI protocol allows any two SCSI devices connected to the SCSI bus 108 to communicate at any given time. The SCSI device issuing SCSI commands is known as the “initiator,” and the SCSI device that is intended to perform the SCSI commands is known as the “target”. Generally, the host computer 102 is the initiator because it issues SCSI commands to each of the SCSI devices.
Each SCSI device is assigned a unique SCSI identifier (SCSI ID). The number of SCSI IDs determines the number of SCSI devices that may be connected at one time on the SCSI bus 108. The SCSI ID may be set manually using a thumb-wheel, a DIP switch, a jumper, or the like. Alternatively, the SCSI ID may be set using programmable memory for the SCSI device. Generally, depending on the type of SCSI bus 108, eight or sixteen SCSI devices may be connected to a SCSI bus 108.
Referring still to FIG. 1, a typical SCSI bus 108 may allow for sixteen SCSI devices, including the adapter in the host system 102. In one common configuration, for instance, a series of tape drives 112 may be connected by cables 106 to the SCSI bus 108. The tape drives 112 may be organized into a tape library 114 for convenience. The last tape drive 112 is terminated by a terminator 110.
The SCSI protocol provides a comparatively fast protocol for transferring data between peripherals such as hard disks and tape drives. The SCSI protocol is very flexible, because peripherals may be readily added to or removed from the SCSI bus 108. In addition, the data is transferred across the SCSI bus 108 with high reliability.
Unfortunately, setting up a SCSI system 100 that is similar to the one described in FIG. 1 and that provides a desired data transfer rate is not simple. The SCSI protocol has been available for many years. As hardware technology has advanced, the SCSI protocol has been updated. Updating the SCSI protocol has resolved certain hardware limitations, but introduced others.
The SCSI protocol allows the SCSI devices and SCSI bus 108 to operate according to operation modes. An operation mode is a method for placing signals on the wires of the SCSI cables 106. The first operation mode was single-ended (SE). In the SE operation mode, each signal wire is driven against ground. The SE operation mode suffers from noise interference and does not allow for lengthy cables 106. Generally, SE allows for cable lengths between about five feet and about twenty feet.
To overcome the cable length limits of SE, the High Voltage Differential (HVD) operation mode was developed. HVD drives two signal wires. One wire is driven with a signal that is inverse to the other wire. The difference in the signals between the two wires represents the SCSI signal. The HVD operation mode is less affected by noise. In addition, the cable length may be as long as eighty-two feet and still maintain reliable data transfers.
Eventually, the SCSI protocol was again revised to increase the data throughput for the protocol. In order to increase the throughput, the voltage level for the protocol was changed from about 5 volts to about 3.3 volts. The new operation mode was named Low Voltage Differential (LVD). LVD operates in a similar fashion to HVD, except for the difference in voltage levels. LVD retains the advantages over noise and the longer cable lengths. In addition, LVD uses less voltage and current, so, less heat is produced. This meant that LVD may be implemented in Integrated Circuits (ICs). Consequently, the LVD compatible SCSI devices are more reliable.
As the SCSI protocol has been revised and updated, efforts have been made to provide backward compatibility. This is important because peripherals 104 such as large hard drives and tape libraries 114 are expensive and not easily replaced with each new SCSI protocol update. To provide backward compatibility, the SCSI protocol includes a multimode LVD or Multimode Single Ended operation mode (LVD/MSE). LVD/MSE operation mode allows the SCSI system to revert to the lowest common denominator connected to the SCSI bus 108. So, if an LVD/MSE SCSI device is connected to a SE SCSI bus 108, the SCSI device operates according to the SE operation mode. Similarly, if a SE device is connected to a LVD/MSE SCSI bus 108, the entire SCSI bus 108 operates according to the SE operation mode. Generally, this means that the data throughput is reduced by about fifty percent. Because of this capability, most LVD devices and cables 106 are LVD/MSE. Consequently, references hereinafter to LVD refers to LVD/MSE devices.
Unfortunately, HVD is not compatible with SE or LVD. This means that if you have a mismatch between operation modes on the SCSI bus 108, with the terminators 110, or with the SCSI devices between HVD and SE or LVD, the SCSI system 100 will not function properly. Either the SCSI device will fail to respond or signals may not be properly transferred across the SCSI bus 108.
As the operation modes have changed, the cables 106 have been changed as well. Changing the cables 106 may require changing the communication ports on the SCSI devices. For backward compatibility, however, cables 106 operating under new operation modes may include connectors that connect to the old communication ports. This means that determining the operation mode for the cable 106 may be difficult. In addition, adapters may further complicate the ability to discern which operation mode is being used in the SCSI system 100. The connectors typically comprise either fifty or sixty-eight pins.
A SCSI cable 106 is a bundle of wires. In certain instances, the same cable 106 may be used in different operation modes. As the operation mode changes, the purpose of each wire may change. In other words, the pin-out changes based on the operation mode being used.
Furthermore, different size cables 106 may be used to support different data throughput. Generally, SCSI cables 106 have either an 8 bit bus or a 16 bit bus. An 8 bit bus has at least 8 wires for carrying data signals. The number of wires is doubled when LVD operation mode is used. The different cable sizes and different versions of the SCSI protocol has lead to a variety of names for the type of SCSI system being used. Names such as SCSI-1, Fast SCSI, Ultra SCSI, Ultra2 SCSI, Fast Wide SCSI, Wide Ultra SCSI, Wide Ultra2 SCSI, Ultra3 SCSI, and Ultra320 SCSI, are just a few of the different names used to describe the configuration of a SCSI system. Consequently, keeping track of the current operation mode and type of SCSI system that is implemented can be difficult.
Troubleshooting errors in a SCSI system 100, such as that illustrated in FIG. 1, can be very difficult. Assuming the SCSI system is properly configured to begin with, and that the technician understands the complexities described above for a particular SCSI system 100, the SCSI system may stop working for a variety of reasons. For example, a user may install a cable 106 or SCSI device configured to operate under an incompatible operation mode. Alternatively, a terminator 110 for the wrong operation mode may be installed. Also a terminator 110 may have been left off of one end of the bus 108. A single cable 106 may have a break in one or more wires internal to the cable 106, or one of the SCSI devices may have failed.
Logical errors may occur in the SCSI system 100 as well. For example, a SCSI device may be installed with the same SCSI ID as a SCSI device already connected to the SCSI bus 108. Logical errors and physical configuration errors in a SCSI system 100 may not be readily apparent, and the errors may surface unexpectedly.
Isolating a problem in the SCSI system 100 is difficult, because as each SCSI device connected to the SCSI bus 108 is checked, the number of SCSI cables 106, terminators 110, and SCSI devices between the SCSI device and the host 102 that may be a source of the problem increases rapidly. Furthermore, logical errors such as duplicate SCSI IDs may only be identified by physically inspecting the thumb-wheel or jumpers of each SCSI device. Alternatively, all the SCSI devices may be powered down and each brought on-line independently so that the SCSI ID's of the devices may be verified.
Unfortunately, few tools exist for testing each SCSI device and the SCSI bus 108, including terminators 110, between a tested SCSI device and the host computer 102—independent of influences from other SCSI devices. Certain tools exist that test for transmission of electrical signals along the lines of SCSI cabling. These tools, however, fail to provide a logical test of the operation of a SCSI device to test for problems such as a duplicate SCSI ID. Conventional testing devices are configured specific to the operation mode for the SCSI system. This means that several testing devices must be made available to accommodate the proper operation mode.
Using conventional testers and techniques, a technician often narrows the problem down to one or two suspect SCSI devices. Generally, resolving the problem requires that these SCSI devices be removed from the SCSI bus 108 and shipped to a manufacturer for independent hardware analysis to determine whether the SCSI devices have failed. If one of the suspect devices is a tape drive 112 in a tape library 114, removing and shipping the tape drive 112 can be very costly, particularly if it turns out that the tape drives 112 is not the source of the problem failure.
Accordingly, what is needed is an apparatus, system, and method that overcome the problems and disadvantages mentioned above. To be most effective, the apparatus, system, and method should allow for testing of each SCSI device connected to the SCSI bus independently and without physically removing the SCSI device. Also, the apparatus, system, and method should automatically adapt to the operation mode, LVD/SE or HVD, for the SCSI device being tested; and the apparatus, system, and method should test the integrity of portions of the SCSI bus connected to the SCSI device being tested, including any terminators currently connected to the SCSI device or the SCSI bus. In addition, such an apparatus, system, and method to be most effective should not provide any artificial termination. Likewise, the apparatus, system, and method should be able to conduct logical tests on the SCSI device to determine electrical integrity for the SCSI bus as well as logical operation of the SCSI device. The apparatus, system, and method should also provide convenient feedback regarding whether or not an error condition exists for the SCSI device.